Method and apparatus for generating an elliptical image

ABSTRACT

Elliptical features are described in an image generator database in terms of an origin and major and minor axes defined by reference to a world or model space coordinate system. Image data is assembled for display by transforming the database contents into screen space and assessing for each of an array of sampling points distributed across screen space which features are to contribute to the portion of a final image in which the sampling point is located. In the case of elliptical features, data is transformed into eyepoint space and each sampling point is projected into eyepoint space to determine the point of intersection between a line drawn through the sampling point from the eyepoint and a plane defined by the axes. The coordinates of the intersection point in a coordinate system defined by the origin and axes, are used to determine whether or not the feature contributes to the sampling point.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an image generator, and in particularto a computer image generator suitable for generating information inreal time from which an image can be derived for display in for examplea flight simulator.

2. Related Art

Real time image generators for flight simulators are used to simulateimages which are presented to pilots who are positioned in a mockaircraft cockpit. The intended viewer of the image produced by thesystem, that is the simulator "pilot", looks out through an imaginarywindow into a three-dimensional (3-D) world defined by informationstored as geometrical and other characteristic attribute data in a maindatabase. A line drawn from the eyepoint through the window intersects apoint in the 3-D world. The colour and intensity of that point must be"painted" on the window at the point of intersection of that line withthe window.

The displayed image is made up from a series of picture elements(pixels) each of which is of uniform colour and intensity, the colourand intensity of each pixel being a function of the position of theeyepoint relative to the 3-D world which the stored data represents. Ina real time display where hundreds of thousands of pixels must beupdated sufficiently quickly to avoid jumping of the image, it isnecessary to perform many millions of calculations per second tomaintain image fidelity.

The position of the eyepoint, relative to the database changes over timein response to the manipulation of the flight controls of the simulatedaircraft. At any point in time the simulator produces an outputindicating the eyepoint position in world space coordinates, that is thecoordinate system of the database, and indicating the viewing direction,that is a vector drawn from the pilot's eyepoint through the centre ofthe viewing window. The database stores data identifying the positionand orientation of a large number of features that may contribute to thefinal image. The image generator calculates which of the features isvisible for the given eyepoint, the position of the boundaries of thefeatures relative to the viewing window, and the attributes such ascolour and intensity of the visible features. Occultation of one featureby another must be taken into account, and in high quality systems theeffects of one translucent feature occulting another must also be takeninto account.

The content of the database is used to derive the colour and intensityinformation for each pixel of the image to be displayed on a screenplaced in front of the simulator pilot. The centre of each pixel is on aunique predetermined imaginary viewing line extending from the eyepointto the screen and notionally extending through the screen onto thesurface of the model defined in the database. This means that the worldspace coordinate system of the database must be transformed using theeyepoint coordinates into a coordinate system having the eyepoint as itsorigin, that is an eyepoint space coordinate system, and the informationmust then be transformed from eyepoint space into a screen spacecoordinate system. The screen space coordinate system is twodimensional, having its origin at the centre of the display screen.These transformations enable the surface areas of the modelled featureswhich determine the colour and intensity of each pixel (for which thescreen space coordinates are known) to be determined. Once the featurescontributing to a particular pixel have been identified, the colour,intensity and other attributes of those features can be obtained fromthe database and appropriate calculations performed to determine thefinal displayed colour and intensity of the pixel.

If a high quality image is to be achieved, the final pixel colour andintensity must be based on a number of samples of the contributingfeatures taken at sampling points distributed across each pixel. Foreach feature making a contribution to an image it is necessary todetermine whether or not that feature overlaps each point in screenspace corresponding to a sampling point. Thus it is fundamental to theoperation of the image generator to be able to determine the boundariesof a feature in screen space relative to the position of each of arelative large number of sampling points.

In most known CIG systems, the world space model is defined as a seriesof polygonal features. Light point features can also be displayed insome systems. In the case of polygonal features, each polygon isdescribed in the database by the world space coordinates of at least itsvertices, and these geometrical attributes must be transformed intoscreen space coordinates to take account of the position and orientationof the eyepoint. This involves an initial world space to viewpoint spacetransformation, followed by a viewpoint space to screen spacetransformation. The transformations are computationally intensiveoperations but do enable realistic images to be displayed. In the caseof a lightpoint feature, it may be described in the database by forexample a position in world space. The position is transformed to screenspace, and the feature can then be displayed on a circular area of thescreen centred on the transformed position and having a radiuscorresponding to a computed size. Lightpoint features, providing theyoccupy only a relatively small area of screen space, can be adequatelyrepresented in this way as screen space circles. In the case of largerfeatures which in world space are circular or elliptical, e.g. helipadmarkings, vehicle wheels, or fuel storage tanks, screen space circles orellipses cannot provide image realism as correct perspective cannot bemaintained.

The conventional approach to simulating the appearance of world spaceellipses in screen space is to model each elliptical surface in thedatabase as a multisided polygon defined with reference to world spacecoordinates. The greater the number of sides, the less apparent are thediscontinuities alone the boundary of the ellipse. Thus, world spaceellipses can be displayed in screen space using conventional techniques,but only at the expense of increasing the number of vertices/edges, eachof which must be separately transformed to screen space coordinates andthen processed to define its position relative to screen space samplingpoints. Increasing the number of vertices and edges to be processedincreases the time taken to process one image using a given fixedcomputational resource. Thus in real time systems where there is afundamental limit to the maximum acceptable time taken to produce oneimage it is highly undesirable to increase the number of polygon edgesused in the model.

A review of the problems confronted in real time CIG systems and variousapproaches to solving these problems is given in the publication"Computer Image Generation", edited by Bruce J. Schachter, published byJohn Wiley & Sons Inc. 1983, ISBN 0-471-87287-3.

BRIEF SUMMARY OF THE INVENTION

It is an object of the present invention to obviate or mitigate theproblems outlined above with regard to the production of images in whichelliptical features rendered in the image behave correctly with regardto perspective without it being necessary to break elliptical featuresinto a series of straight-sided sub-features.

According to the present invention there is provided a method forgenerating data representative of an image of a world space model to bedisplayed on a screen, the model being defined by a plurality offeatures including at least one feature having an elliptical boundary,and the image being intended to present a view of the model from apredetermined eyepoint in world space, wherein

a. attribute data describing the said at least one feature is stored,the attribute data including two axes and an origin describing the majorand minor axes of the elliptical boundary in world space coordinates.

b. the said attribute data is transformed from world space coordinate toeyepoint space coordinates,

c. the positions of a plurality of sampling points in screen space aredetermined,

d. for each sampling point, the position is determined of a point ofintersection between a line drawn from the eyepoint through the samplingpoint and a plane defined by the said two axes,

e. the coordinates of each said point on the plane defined by the twoaxes are calculated in a coordinate system defined by the said two axesand origin,

f. from the calculated coordinates, each sampling point for which therespective coordinates lie within the elliptical boundary is identified,and

g. for each identified sampling point, a sampling point output isgenerated including attributes of the said at least one feature.

The present invention also provides an image generator for generatingdata representative of an image of a world space model to be displayedon a screen, the model being defined by a plurality of featuresincluding at least one feature having an elliptical boundary, and theimage being intended to present a view of the model from a predeterminedeyepoint in world space, wherein the image generator comprises:

a. means for storing attribute data describing a set of at least onefeature, the attribute data including two axes and an origin describingthe major and minor axes of the elliptical boundary in world spacecoordinates,

b. means for transforming the said attribute data from world spacecoordinates to eyepoint space coordinates,

c. means for determining the position of a plurality of sampling pointsin screen space,

d. means for determining, for each sampling point, the position of apoint of intersection between a line drawn from the eyepoint through thesampling point and a plane defined by the said two axes,

e. means for calculating the coordinates of each said point on the planedefined by the two axes in a coordinate system defined by the said twoaxes and origin,

f. means for identifying from the calculated coordinates each samplingpoint for which the respective coordinates lie within the ellipticalboundary, and

g. means for generating for each identified sampling point a samplingpoint output including attributes of the said at least one feature.

The screen may be divided into a plurality of sub-areas, and attributedata describing the vertices in world space of a polygon circumscribingthe elliptical feature may be stored. The stored vertices are thentransformed into screen space coordinates, and sub-area coverage by thefeature is assessed by reference to the screen space coordinates ofthose vertices. The vertices may be used to derive a bounding box andthe feature may be conservatively assessed as not covering any sub-areawhich is not overlapped by that bounding box.

Screen space vertices for an inscribed polygon may also be calculated,each vertex of the polygon lying on the elliptical boundary of thefeature. Line equations describing the edge of the inscribed polygon arederived, and the position of each corner of a sub-area of the screenrelative to each edge of the inscribed polygon is determined. A featureis identified as fully covering the sub-area only if each corner of thesub-area is within the sub-area defined by the inscribed polygon edges.

BRIEF DESCRIPTION OF THE DRAWINGS

An embodiment of the present invention will now be described, by way ofexample, with reference to the accompanying drawings, in which:

FIG. 1 is a schematic illustration of the basic configuration of a CIGsystem in accordance with the present invention;

FIG. 2 is a schematic illustration of a transformation engine suitablefor use in a system of the type illustrated generally in FIG. 1;

FIGS. 3 and 4 illustrate the derivation of line equations which are usedto assess the position of features in screen space in the embodiment ofthe present invention;

FIG. 5 illustrates the inter-relationship between various sub-areas ofscreen space in the embodiment of the present invention;

FIG. 6 illustrates a scan converter and store arrangement of the typedescribed more generally with reference to FIG. 2;

FIG. 7 illustrates the functional structure of the store of FIG. 6;

FIG. 8 illustrates the relative disposition of the boundaries ofsub-areas of screen space relative to a bounding box for a feature;

FIG. 9 is a schematic illustration of basic components of the renderingengine described in outline with reference to FIG. 1;

FIGS. 10 to 13 illustrate the processing of edge equations in apresorter which is a component part of the rendering engine;

FIG. 14 is a flow diagram illustrating the processing of edge equationsin the presorter;

FIG. 15 illustrates the operation of the presorter in determining whichfeatures are occulted;

FIG. 16 is a schematic illustration of the structure of a presorterprocessor;

FIG. 17 illustrates the distribution of sampling points relative to asingle pixel of the final display;

FIG. 18 is a schematic block diagram of a post-sorter which receives theoutput of the presorter referred to above;

FIG. 19 is a flow diagram illustrating the operation of the post-sorter;

FIG. 20 illustrates the way in which the impact of an elliptical featureon a sampling point is assessed; and

FIG. 21 illustrates in functional terms the calculation of coordinatesrequired to assess sampling point impact.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Referring to FIG. 1, this illustrates the basic functional components ofan embodiment of the present invention adapted for use in a flightsimulator. The simulator incorporates a host computer 1 which providesoutputs corresponding to the position and attitude of the simulatedaircraft relative to a world space model of the earth surface. An imageis to be displayed which is representative of the appearance of themodel surface to an observer in the simulated aircraft. In the describedembodiment, the image is projected onto a back projection screen. Theobserver views the reflection of the back projection screen in a largespheroidal mirror. It will be appreciated however that alternativedisplay systems may be used.

A system manager (SM) 2 receives the outputs of the host computer 1describing the aircraft position and attitude and downloads from adatabase model-describing data corresponding to those portions of themodel which are potentially visible from the observer's eyepoint giventhe position and attitude of the simulated aircraft. The image isprojected as a plurality of raster scanlines. Calligraphic lightpointscould be superimposed on the image raster but the processing ofcalligraphic lightpoints is not relevant to the present invention andtherefore will not be described further herein.

The model-describing data is predetermined during model production butwill describe features of the model scene, for example runways,buildings and fields, in terms related to a set of worldspacecoordinates with a predetermined origin. The model may include a varietyof different feature types, for example straight edged polygonalfeatures, circular lightpoints and elliptical (including circular)features. The present invention is concerned with the correct display offeatures which are elliptical in worldspace coordinates and thereforethe processing of other feature types will not be described furtherherein. It will be appreciated however that in most modelled scenes themajority of features will be polygonal and these features will beprocessed by the same equipment as is used to process ellipticalfeatures.

The model describing data is hierarchically ordered such that mostindividual features of the model are defined by reference to objects ofwhich they form a part, and those objects are in turn defined byreference to other objects in the model. Thus the model world willgenerally define a feature in "object space", that is with reference toa coordinate system having its origin and axes related to an object suchas a building. The coordinate system of that object is then referencedto world space coordinates either directly or through one or morefurther objects. The term "world space coordinates" is used herein toinclude both direct reference to the coordinate system of the maindatabase and indirect reference to the coordinate system of the maindatabase through one or more "object spaces".

The extracted model-describing data is passed to a transformation engine(TE) 3 which performs two main functions. that is geometrictransformation of model feature data from the database or world spacecoordinate system to the observers or eyepoint coordinate system, andperspective transformation from the 3-D eyepoint coordinate system to a2-D screen space coordinate system. The techniques used to achieve suchtransformations are well known and accordingly are not elaborated indetail here.

The TE 3 provides a stream of model-describing data in screencoordinates to a rendering engine (RE) 4. The RE 4 performs a number offunctions using model feature geometric attribute data (e.g. size andposition) and model feature non-geometrical attribute data (e.g. colour,translucency) received from the TE 3 to produce a final colour for eachpixel of the image to be displayed. Data representing thenon-geometrical attribute data is loaded into a frame store within theRE 4, the frame store having a storage address in respect of each pixelin the final display. The contents of the frame store are down loaded todisplay device 5 which produces the final image. The system thus hasfour main pipeline stages; such that as one image frame is beingdisplayed, the next frame to be displayed is being rendered in the RE 4,the next but one frame to be displayed is being processed in the TE 3,and the next bus two frame to be displayed is being processed in the SM2. Each stage is separated from the or each adjacent stage by a doublebuffered store. A frame swap signal is generated to cause all the doublebuffered stores to swap in unison. Thus data relevant to one frame iseffectively "clocked" through the pipeline by the frame swap signal.

FIG. 2 illustrates the TE 3 of FIG. 1 in more detail. The TE processesdata previously read out from the SM 2 into a channel active database(CADB) 6. The contents of the CADB 6 corresponds to all the data withinthe main database which is within potentially visible range of theeyepoint. The CADB 6 comprises a memory 7 and control logic 8 whichcontrols the read out data from the memory to an array of objectprocessors 9 that in turn provides control inputs to the control logic8. The memory 7 holds the entire active database and the control logic 8selects object data for processing. The object processor array 9comprises individual object processors 10 arranged in groups onrespective boards 11. These processors form the main computationalelement of the TE 3.

A common output 12 of the object processor array 9 is delivered to ascan converter 13 incorporating a logic unit 14 providing an output to ascan converter store 15. An attribute store 16 receives input via thescan converter 13. The stores 15 and 16 provide the outputs of the TE 3to the rendering engine RE 4.

The object processors 10 perform a variety of functions, includingcontrolling the distribution of data to the object processors in anefficient manner, performing a range cull to discard all objects whichare at a range too great for them to be visible from the eyepoint, andperforming a field of view cull to discard all objects which arecompletely outside the field of view given by the position of theviewing window or screen relative to the eyepoint. For all features notculled in this processing, the geometrical attributes must be processed.This processing involves five basic procedures, that is backface removal(culling all features that cannot be seen from the eyepoint as they faceaway from the eyepoint), plane equation attribute calculation (using thecoefficients of the plane in eyepoint space of each feature that ispotentially visible), field of view culling (culling all features whichare completely outside the field of view represented by the viewingwindow), bounding box calculations (the maximum or minimum screen spaceextents of each feature), and line equation calculations (thecalculation in screen space of equations describing lines defining thebasic geometry of the features being processed). Before these processesare described in further detail it is appropriate to explain the basicgeometrical attributes assigned to the various features which are to beprocessed.

Modelled features

In the world space model, there are various different types of features,including quadrilateral polygons and ellipses. The geometricalattributes of elliptical features include origin (centre of ellipse),major and minor axes, four vertices defining a circumscribing polygon,and the surface normal, all defined with reference to world spacecoordinates. The geometrical attributes of other feature types will notbe described herein as they are not directly relevant to the presentinvention. It will be appreciated that in most images the majority offeatures contributing to that image will not be elliptical but that theinterrelationship between all feature types will be taken into accountin the final image. The following description discusses only theprocessing of elliptical features but it will be appreciated that otherfeature types can be readily processed by equipment of the general typedescribed.

FIG. 3 illustrates a plan view of an elliptical feature having aboundary 17, a major axis 18, and a minor axis 19. Broken line 20indicates a circumscribing polygon which is rectangular and the edges ofwhich pass through respective intersection points between the ellipseboundary 17 and the two axes. The axes 18 and 19 intersect at an origin21 the position of which is defined in world space coordinates. The axes18 and 19 are themselves defined by vectors described in terms of worldspace coordinates. Thus the elliptical feature has a defined position inworld space, a surface normal, and four vertices corresponding to thecorners of the circumscribing polygon 20 which defines an area withinwhich all of the ellipse is enclosed.

The object processors initially, perform backface removal and planeequation attribute calculations for elliptical features. These processesare described below:

Backface removal

The object processor starts feature processing with backface removal.For each feature, the surface normal is rotated into eyepoint space anda control vertex on the feature is rotated and translated into eyepointspace. This produces plane equation coefficients (A, B, C) and controlvertex coordinates (x_(c), y_(c), z_(c)) These are substituted in theplane equation:

    Ax+By+Cz=-D

to yield "-D". Backfacing planes (which face away from the eyepointspace origin) have a positive value for "-D" and are culled. Thiseffectively discards all backfacing features.

Plane Equation Attributes Calculation

For all surviving features. "-D" is normalized to:

    -2.0>D>=1.0

and used to produce the following attributes:

A/D.kx

B/D.ky

C/D

kx and ky are constants which relate the attributes to the size andaspect ratio of the screen on which the image is to be displayed. If thepixels are square, kx=ky.

The plane equation attributes are passed to the scan converter and areconstant for each field.

Bounding Box Calculations

Referring to FIG. 4, the right-hand portion of this Figure labelledillustrates a possible derivatiion of a "bounding box" for an ellipticalfeature, the bounding box representing the full range of screen spacecoordinate values which might lie within the circumscribing polygon 20of FIG. 3. In FIG. 4, the rectangle 22 is intended to represent thescreen periphery, the line 23 represents the area occupied by theellipse of FIG. 3 within the screen, a rectangle indicated by brokenline 24 corresponds to the circumscribing polygon 20 of FIG. 3, and therectangle indicated by broken line 25 represents the bounding box forthe elliptical feature.

To derive the equations of the lines defining the bounding box 25, it isnecessary to transform the vertices of the circumscribing polygon 20 ofFIG. 3 from world space coordinates into screen space coordinates. InFIG. 4, the screen space coordinates of the vertices are indicated as(x₀, Y₀), (x₁, y₁), (x₂, y₂) and (x₃, y₃). Thus the bounding box edgesare as follows:

    ______________________________________                                                Left         x = x.sub.0                                                      Right        x = x.sub.2                                                      Top          y = y.sub.1                                                      Bottom       y = y.sub.3                                              ______________________________________                                    

The bounding box is thus defined by four line equations:

    x-x.sub.0 =0

    x.sub.2 -x=0

    y.sub.1 -y=0

    y-y.sub.3 =

Or in general:

    x-L=0

    R-x=0

    T-y=0

    y-B=0

Where L, R. T and B are left, right, top and bottom extents respectivelyof the bounding box.

Thus a bounding box for any elliptical feature can be derived. It willbe appreciated that this bounding box is generally larger than theoptimum bounding box but it can be easily derived without muchcomputational effort in a way which ensures that the bounding box is atleast large enough to enclose all of the feature. It will be appreciatedthat other methods of finding a bounding box can be used to obtaineither the optimum bounding box or a close approximation thereto,subject only to the computational load resulting from the use of suchalternative methods not being excessive.

Line Equation Calculations

Referring again to FIG. 4, lines 26 to 29 indicate edges of an inscribedpolygon, the vertices of which correspond with the points ofintersection between the axes 18 and 19 and the line 17 of FIG. 3. Itwill be noted that the inscribed polygon lies wholly within the boundaryof the elliptical feature. It is necessary to calculate line equationcoefficients for the edges of the inscribed polygon for reasonsdescribed below.

Assuming that the line 26 extends from screen space coordinates x₄ y₄ tox₅ y₅, the calculation of the line equation:

    e.x+f.y=-g is as follows:

e from the normalized line equation can be derived from the following:

    e=(y.sub.5 -y.sub.4)/sqrt [(y.sub.5 -y.sub.4).sup.2 +(x.sub.5 -x.sub.4).sup.2 ]

f from the normalized line equation can be derived from the following:

    f=(x.sub.4 -x.sub.5)/sqrt [(y.sub.5 -y.sub.4).sup.2 +(x.sub.5 -x.sub.4).sup.2 ]

Thus e and f can be readily calculated, and g can be readily calculatedby substituting the calculated e and f values and the coordinates ofeither vertex into the line equation. Thus the line equationcoefficients can be readily derived simply from knowledge of thevertices of the inscribed polygon. These vertices can be derived in turnby transformation from world space coordinates to screen spacecoordinates of the points of intersection between the axes 18 and 19 andthe line 17 of FIG. 3.

The signs of both the inscribed polygon and bounding box edge equationcoefficients are formulated so that the set of polygon edges and the setof bounding box edges each form a close string of connected vectorsrunning in the clockwise direction.

Once the object processor has completed the processing of a feature, theattributes (including edge coefficients and bounding boxes) are outputto the scan converter. The function of the scan converter is to reviewthe screen coordinate geometrical data of each feature received from theobject processors and to decide whether or not that feature ispotentially relevant to one or more of a series of areas into which thescreen area is divided. Before describing the operation of the scanconverter, the way in which the screen is divided into sub-areas forprocessing purposes in the rendering engine will be described withreference to FIG. 5.

Subdivision of Display Screen

The displayed image is made up from a regular array of pixels which donot overlap and which together cover all of the screen. Each pixel isprojected by the raster scan display device as an area of uniform colourand intensity. FIG. 5 includes four illustrations of varioussubdivisions of the screen, the leftmost illustration being to onequarter of the scale of the three other illustrations.

In FIG. 5, the shaded areas identified by reference numeral 30 eachcorrespond to one pixel. The screen is divided into sub-areas or cellseach covering a respective rectangular array of pixels, in theillustrated case a four by four array. Numeral 31 in FIG. 5 points tothe boundary of one cell. Adjacent cells do not overlap. Superimposed oneach cell is a pseudocell which covers the respective cell and a halfpixel boundary around that cell. Broken lines 32 in FIG. 5 correspond toa pseudocell boundary. Thus adjacent pseudocells overlap each other.Each pseudocell is divided into a regular array of abuttingpseudopixels, e.g. a four by four array of pseudopixels. The shadedareas 33 in FIG. 5 each correspond to one pseudopixel. Superimposed onthe pseudocells are supercells, each covering a respective rectangulararray of pseudocells, e.g. a four by four array of pseudocells in theillustrated case. Thus adjacent supercells overlap each other. Thebroken line 34 indicates a supercell boundary, and shaded area 35 onepseudocell within that supercell. Thus each supercell covers sixteenpseudocells, and those sixteen pseudocells together cover sixteen cellsplus a half pixel wide boundary around the edge of those sixteen cells.It is necessary for adjacent supercells, adjacent pseudocells andadjacent pseudopixels to overlap to achieve anti-aliasing as describedbelow.

For the illustrated case of a four by four pixel cell, and a four byfour pseudocell supercell, and assuming a display area of 1024 by 1024pixels, there are 64×64 supercells and 256×256 pseudocells.

Scan Converter

For each feature delivered to the scan converter by the objectprocessors, the scan converter identifies all of the supercells whichare at least partially overlapped by that feature. For ellipticalfeatures, only the bounding box edges are processed in the scanconverter.

The scan converter assigns an identity (ID) to each feature, locates thesupercells impacted by that feature, and passes the feature ID to thescan converter store 15 (hereinafter referred to as the supercellstore).

FIG. 6 is a schematic illustration of the components of the scanconverter 13 and supercell store 15 of FIG. 2. The scan converter store15 stores data relevant to individual supercells. Attributes arereceived from the TE on input 12 (FIG. 2), one feature at a time, and anattribute interface module 36 inserts a feature ID into the data streamrepresenting each feature for distribution to a scan converter inputbuffer 37 and an attribute transmission module 38 feeding an attributebus 39 communicating with the attribute store 16 (FIG. 2).

The interface module 36 passes to the buffer 37 only geometricalattribute data necessary for the scan conversion processing. The buffer37 allows the received data to be stored at optimum speed without itbeing necessary to slow down the flow of attribute data from the TE. Thebuffer output supplies the attribute data to an array 40 of lineequation processors providing outputs to a state machine 41 that in turncontrols the line equation processors. The components 40 and 41correspond to the logic unit 14 of FIG. 2. A write coordinate look-uptable 42 directs feature IDs to the appropriate location in the writesection of the double-buffered supercell store. At the start of the nextframe a read control unit 43 controls a read section of the coordinatetable 42 to read data from the supercell store.

Each line equation processor is in the form of an identical applicationspecific integrated circuit (ASIC) which can be controlled by the statemachine 41. Each of these ASICs is referred to herein as a Dlet andperforms a variety of functions depending on the mode selected. Thedetailed structure of each Dlet is of no great importance to anunderstanding of the present invention however and is therefore notdescribed here. It will of course be provided with the circuitcomponents necessary to perform the simple arithmetical operationsdescribed below.

Three of the Dlets in array 40 share the task of deciding whether or nota feature bounding box impacts a supercell. The ID of each impactingfeature is stored in the supercell store. The supercell store isschematically illustrated in FIG. 7 and it will be seen that itcomprises a storage stack in respect of each supercell, each stack beingcapable of storing up to 256 feature IDs. Thus for the example quotedabove, there are 64×64 stacks, and each stack stores a simple record(IDs only) of those features which impact the respective supercell.

Bounding Box Processing

Scan conversion of the bounding box of any feature starts from thebottom of the box, works in the x direction across the box until all thesupercells between or overlapping the left and fight edges of the boxhave been identified, and then works upwards through the box one row ofsupercells at a time. The supercell being processed has unique centrecoordinates in screen space and these are used to compute the distancesdL, dR, and dT of the supercell centre (x_(sc), y_(sc)) from thebounding box edges to left, right and top:

dL=x_(sc) -L

dR=R-x_(sc)

dT=T-y_(sc)

It is not necessary to calculate the distance to the bottom of the boxas scan conversion starts at the bottom and always proceeds upwards.

Each of the three distances calculated as described above is compared tothe distance from the supercell centre (x_(sc), y_(sc)) to the supercelledges. In the example described above the supercell is square and thusit can be assumed that the supercell has dimensions of 2a square. Then,considering the left-hand edge of the bounding box:

If dL<-a, the supercell is to the left of the left bounding box edge.This is indicated by the generation of an outcode 01.

If -a<=dL+a, the supercell is the leftmost supercell in its row which isimpacted by the bounding box. This is indicated by an outcode 10.

If +a<dL, the supercell is to the right of the left-hand edge of thebounding box. This is indicated by outcode 11.

Codes 01, 10 and 11 can be derived in this way for the left, right andtop edges of the bounding box. Any one code 01 would indicate that thesupercell was outside the bounding box. Any one code 10 would indicate asupercell intersected by one of the edges of the bounding box. This isused to control the direction of the bounding box scan efficiently. Forexample, a feature could have a bounding box as illustrated by the line44 in FIG. 8. The grid illustrated in FIG. 8 indicates the relativedisposition of the supercell boundaries relative to the bounding box 44.Supercells do of course overlap slightly but this is not indicated inFIG. 8. The scan converter can be arranged to go to the supercell withinwhich the bottom left-hand corner of the bounding box is included, toprogress in the positive x direction across the bounding box until anoutcode 10 is produced as a result of the supercell then being processedoverlapping the right-hand bounding box edge, to progress one step inthe positive y direction and then in the negative x direction until anoutcode 10 is produced for the left-hand edge of the bounding box, andso on. Thus in the case illustrated in FIG. 8 the scan converter willproceed through the supercells overlapped by the bounding box 44 in theorder indicated by numbers 1 to 20.

The Rendering Engine

The RE 4 of FIG. 1 will now be described in outline with reference toFIG. 9. FIG. 9 shows the supercell store 15 and attribute store 16 ofFIG. 2. It will be recalled that the supercell store and attribute storeare both double-buffered, the contents of the stores being read out inresponse to receipt of a start of frame signal. The content of thesupercell store is read out on output 45 supercell by supercell into apresorter 46 which also receives geometrical attribute data from theattribute store 16 on output 47. The presorter and attribute storeprovide respective outputs 48 and 49 to a special effects module 50, acolour mixer 51, and a postsorter 52. The postsorter 52 feeds rasterimage data to a frame store 53 and an output 54 from the frame store isdelivered to the display device (display device 5 of FIG. 1).

The function of the presorter 46 is to subdivide each supercell into aseries of pseudocells, to compute the effective depth (distance from theeyepoint) of each feature at each pseudocell corner, to detect anyfeature which is opaque and fully covers a pseudocell, and to discardany features from consideration in respect of any one pseudocell if suchfeatures lie behind an opaque feature fully covering that pseudocell.Thus given a pseudocell size which is four by four display pixels plus ahalf pixel boundary, each supercell ID list will be considered for eachof sixteen pseudocells in turn.

The IDs accumulated in the supercell store 15 are downloaded to thepresorter 46 one stack at a time. Corresponding attributes aresimultaneously downloaded to the presorter from the attribute store 16.Thus the presorter receives the contents of one stack, corresponding toone supercell, and processes the features identified by the stackcontents, before the next stack is downloaded.

If the presorter indicates that a feature impacts (at least partiallycovers) the pseudocell being processed, a "fragment" data packet isgenerated and applied to the fragment carrying output bus 48. This datapacket comprises only the screen space coordinates of the four cornersof the relevant pseudocell and the impacting feature ID. The fragmentsof features thus identified are then processed in the special effectsmodule 50, the colour mixer 51, and the postsorter 52.

The units 50 to 52 operate on the basis of pseudopixels. In theillustrated case sixteen pseudopixels fully cover (but do not extendbeyond) a respective pseudocell. The corners of the pseudopixels areinterpolated from the corners of the relevant pseudocell carried by thefragment bus. The special effects module 50 generates, for eachpseudopixel of the pseudocell being processed, an output appropriate towhatever special effects the attributes of the feature being processeddemand, e.g. texture effects, fog effects, landing light effects. Thisoutput is applied to the colour mixer 51 where further effects such asambient lighting are processed, the colour mixer delivering an RGBT(red, green, blue, translucency) output for each pseudopixel to thepostsorter 52. The postsorter provides an output to the frame store 53.The frame store provides output 54 to the raster display device 5 (FIG.1).

The function of the postsorter 52 is to resolve the effects of surfaceshiding or partially hiding other surfaces. It does this by assessing theimpact of features on an array of sampling points, accumulating andweighting the effects of such impacts, and providing a final RGB outputfor each display pixel to the frame store. Each pseudopixel fragmentreceived by the postsorter covers a respective array of sampling pointsdistributed across the pixel array corresponding to each pseudocell.Typically there may be two hundred sampling points, that is eight perpixel. (It will be recalled that each pseudocell in the describedexample covers a four by four pixel array plus a half pixel wideboundary). The position of every sampling point relative to the four byfour pseudopixel array defined for each pseudocell is known, andtherefore it is necessary to decide, for each sampling point, whether ornot a feature impacts that point, and only if impact is detected toaccumulate the RGBT inputs to the postsorter from the correspondingpseudopixel.

Each sampling point may be overlapped by a large number of features andit is necessary to depth sort those features to discard those which arefully occulted by nearer (to the eyepoint) opaque features at thatsampling point. To this end, the distance (from the eyepoint) of eachfeature at each sampling point is calculated. The RGBT and depth of thefirst feature impacting a sampling point is loaded into a respectivestore. Subsequent features are depth compared with the first storedfeature, features being discarded from the store (or not entered) exceptfor the current nearest opaque feature and translucent features nearerthan the nearest opaque feature. Once all the features potentiallyrelevant to a cell have been so processed, the cumulative effects of allthe features identified in each stack are calculated to produce a finalRGB output for each sampling point. Those outputs are then weighted andaccumulated to produce a single RGB for each pixel. Each pixel willrespond to contributions from the eight sampling points within its ownboundary and sampling point within a half pixel wide border therearound,that is thirty-two sampling points in all (1×8+4×4+4×2). The total areacovering the thirty-two sampling points is thus equal to the area of atwo by two pixel array but is centred on the centre of one displaypixel.

The attribute store 16, supercell store 15, and frame store 53 are alldouble-buffered so as to define the boundaries between separate stagesin the pipe-lined system.

Presorter

Turning now to the presorter 46 of FIG. 9, this receives feature IDs oneat a time from the supercell store and decides which pseudocells in therespective supercell are impacted by the identified feature. Thepresorter receives the edge and bounding box equations for theidentified features, and uses both inscribed polygon edges and boundingboxes to determine overlap of the elliptical feature with a pseudocell.The inscribed polygon enables complete coverage of a pseudocell by anopaque elliptical feature to be determined in a conservative manner.

For each feature ID, and for each of the sixteen pseudocells making upthe respective supercell, the presorter decides whether or not thefeature impacts the pseudocell, whether or not the feature completelycovers the pseudocell, and if it does completely cover the pseudocellwhether or not the feature is opaque. For each feature, the depth(distance from the eyepoint) of the corners of the pseudocell projectedonto the plane of the feature are also calculated. Feature IDs are thenstored as a list identifying the nearest opaque fully covering featureand any nearer partially covering opaque feature or partially or fullycovering translucent feature.

For elliptical features the presorter calculates the perpendiculardistance in screen space of each pseudocell corner to each edge of theinscribed polygon. The perpendicular distance d to an edge of theinscribed polygon is derived from:

    d=ex+fy+g

where e, f and g are the coefficients of the line equation for thatedge. The presorter also calculates the distance in screen space to eachedge of the bounding box of the feature. The bounding box edge distancesand the inscribed polygon edge distances are computed concurrently todetermine pseudocell impact. Edge distance calculations are performed bya Dlet ASIC of the type described above with reference to the scanconverter.

Assessing elliptical feature impact by reference to inscribed polygonedge distances is described with reference to FIGS. 10 to 12. Referringto FIGS. 10 to 12, a pseudocell has corners 1 to 4 and an inscribedpolygon has edges A to D. By reference to the edge equations, thefollowing distances (d values) are calculated:

d1A, d2A, d3A, d4A

d1B, d2B, d3B, d4B

d1C, d2C, d3C, d4C

d1D, d2D, d3D, d4D

FIGS. 10, 11 and 12 show distances d1B, d2B, d3B and d4B by way ofexample. In FIGS. 10 and 11, all the four d values are positive. In FIG.12, d2B is negative, but d1B, d3B and d4B are positive. The sign of thedistance depends upon whether the pseudocell corner is to the left orright of the line to which the distance relates.

For all features, an equivalent set of sixteen distances are calculatedby reference to the bounding box edges, that is the distance from eachpseudocell corner to each bounding box edge. Thus in the exampleillustrated in FIG. 13, for corner number 2 of the pseudocell, therequired d values correspond to the perpendicular distance from thatcorner to each of the four broken lines defining the bounding box.

Considering the four d values associated with one inscribed polygonedge, that is the distances from that edge to the four pseudocellcorners, then the following conditions are distinguished between andindicated by the associated outcodes:

Each of the four d values positive or zero

outcode 11

All four d values negative or some negative and some zero

outcode 01

Any other combination (else)

outcode 10

The outcodes for the four edges are then combined by AND gates toproduce total outcodes as follows:

    ______________________________________                                        Total Outcodes                                                                              Significance                                                    ______________________________________                                        11            Feature totally covers pseudocell                               10            Feature straddles (partially covers)                                          pseudocell                                                      01            Feature is outside pseudocell                                   00            Feature is outside pseudocell                                   ______________________________________                                    

The d values from the bounding box edges to the pseudocell corners areprocessed in the same way as the d values for the edges of the inscribedpolygon to provide outcodes 11, 01 or 10 for each bounding box edge, andtotal outcodes 11, 10, 01 or 00 for the combined bounding box edges.Thus two outcodes are produced, one (OCtot) for polygon edges and one(OCXtot) for bounding box edges.

The two total outcodes are combined to assert either "include" (featureto be passed on for further processing) or "total cover" (feature to bepassed on for further processing and feature is opaque and covers all ofpseudocell). Include is asserted only if:

OCXtot=1?

and

OCtot=1?

where ? is 1 or 0

Total cover is asserted only if:

The fragment is "included"

and

OCtot=?1

and

OCXtot=?1

and

the fragment is not transparent

where again ? is 1 or 0.

An elliptical feature is only considered to fully cover a psuedocell ifits inscribed polygon fully covers the pseudocell. In some cases afeature which does fully cover a pseudocell will not be recognized assuch, and as a result fragments which will not contribute to the finalimage may be processed unnecessarily. The system is conservative howeverin that no elliptical feature will be considered to fully cover apseudocell when it does not do so. Visually apparent errors do nottherefore result.

FIG. 14 is a schematic flow diagram of the operation of the presorter.As mentioned above, in addition to analyzing pseudocell impact, thepresorter also performs initial culling of feature fragments (i.e.discards those fragments that are definitely behind a totally opaquefeature). For each pseudocell corner, the presorter calculates the depthof the feature then being processed. This requires an inverseperspective transformation which can be performed by a standardized ASICas described below. The same ASIC is used throughout the system forinverse perspective transformations. The presorter receives as part ofthe feature attributes plane equation coefficients calculated in the TE.These are used to calculate inverse Z (the inverse of the eyepoint spaceZ coordinate of the point on the feature plane intersected by a linedrawn from the eyepoint through the relevant pseudocell corner) at eachpseudocell corner.

Thus four Z depths are computed for each feature, one depth for eachpseudocell corner. Each of these four Z depths is then comparedsimultaneously with the respective one of the four Z depths of thenearest (to the eyepoint) previously processed fully covering opaquefeature. If all the Z depths of the feature being processed are greaterthan those of the nearest fully covering opaque feature with which theyare compared, then the feature being processed is culled. If all the Zdepths of the feature being processed are less than those of the nearestfully covering feature with which they are compared, and the featurebeing processed is opaque, then the feature being processed replaces thepreviously processed fully covering opaque feature.

FIG. 15 illustrates the depth sorting of features in the presorter. Theviewing direction is indicated by arrow 55. Broken lines 56 and 57indicate top and bottom boundaries of a pseudocell. Lines 58 to 64indicate features lying in planes perpendicular to the illustration.Feature 58 is not opaque, whereas features 59 to 64 are opaque. Feature60 is the nearest fully covering opaque feature, but its Z value at line56 is greater than that of the projection of feature 62 to line 56, andthus feature 62 is not culled. The Z value of feature 60 at line 57 isgreater than that of the projection of feature 63, and thus feature 63is not culled. Features 61 and 64 are culled.

FIG. 16 schematically illustrates the presorter processor. Referring toFIG. 16, the presorter receives a series of impacting feature lists oninput 65, each list corresponding to a respective supercell. Theattribute data is also received on input 66 from the attribute store.The four corners (in screen space) of each pseudocell are determined bya selector 67. As described above, each pseudocell will correspond inarea to sixteen pixels plus a half pixel wide border. In an idealsituation the basic cell would be square or rectangular, but distortioneffects inherent in many display systems make the possibility ofnon-standard cell shapes highly desirable so that cells can be shaped soas to cancel out such effects. Thus a selected pseudocell might havefour different x coordinates and four different y coordinates for itsfour corners.

The output of the selector 67 is applied to a Dlet 68 of the typedescribed above and a distance calculator 69 which calculates theinverse distance (1/Z) of the four points on the plane of each featurecorresponding to the corners of the pseudocell. For this calculation, itis assumed that the feature's plane covers all of the pseudocell. Asdescribed above, the Dlets perform thirty-two calculations forelliptical features, that is in respect of each corner of thepseudocell, the perpendicular distance from the corner to each edge ofthe inscribed polygon of the feature, and the perpendicular distancefrom that corner to each edge of the feature's bounding box.

An analyzer 70 decides whether or not a feature impacts the respectivepseudocell as described above. If a feature impacts the pseudocell, itsID is loaded into a store 71 with its distance from the eyepoint at eachpseudocell corner. A comparator 72 compares these distances with thoseof previously stored features and hidden features are culled from thestore 71.

After each pseudocell is processed, the selected IDs are then outputonto the fragment bus 48 (FIG. 9). The fragment bus carries thecoordinates (in screen space) of the pseudocell corners and the featureIDs relevant to that pseudocell. From the pseudocell corner coordinatesthe corners of the sixteen pseudopixels making up the pseudocell arederived by bilinear interpolation.

FIG. 17 illustrates the distribution of thirty-two sampling pointsrelative to a single pixel of the final rendered image. In FIG. 17, thesquare outline indicated by broken line 73 represents a singlepseudocell boundary. The square broken line 74 represents the perimeterof an area enclosing thirty-two sampling points, samples from each ofthose thirty-two sampling points being relevant to the final RGB valueallocated to the pixel positioned centrally within the area outlined bybroken line 74. One edge of the pixel is indicated by numeral 75. Thedots within the area enclosed within line 74 represent individualsampling points. The positions of these sampling points relative to thepseudocell boundaries are fixed for each frame but may be altered(dithered) from one frame to the next if stochastic sampling isrequired. It will be seen that there are eight sampling points withinthe perimeter of the pixel in question, four sampling points in each ofthe abutting half pixel areas, and two sampling points in each of theabutting quarter pixel areas. The number of sampling points per pixelwill of course be selected to suit the particular performancerequirements of the system. Increasing the number of sampling pointswill increase the quality of the final image.

The Special Effects Module

The special effects module 50 (FIG. 9) receives fragment data from thepresorter 46 and attribute data from the attribute store 16. The module50 is made up from a series of subsystems 78 to 81 each handling onespecial effect, e.g. texture effects, fog, landing lights and shading.Of course, provision may be made for other special effects. Each of thesubsystems produces a respective output for each pseudopixel of thepseudocell being processed. Pseudocells are processed one at a time asthey come in on the fragment bus from the presorter.

The Colour Mixer

The colour mixer 51 (FIG. 9) receives fragment data from the presorter46, attribute data from the attribute store 16, and the outputs of thespecial effects module. Within the colour mixer are subsystems thatcombine the various inputs to achieve desired effects. These subsystemsmay comprise an array of processors each allocated a particular task.The detailed relationship between the various subsystems and the inputsto the colour mixer is not germane to the present invention. It issimply necessary to appreciate that the colour mixer provides an outputwhich includes an RGBT value for each pseudopixel of the pseudocellbeing processed. That output is delivered to the postsorter 52.

The Postsorter

Referring now to FIG. 18, this schematically illustrates the structureof the postsorter. One postsorter processor is provided for eachsampling point (200 per pseudocell). Each postsorter comprises asampling point impact detector 76, an inverse Z depth calculator 77, atranslucency stack 78 and an accumulator 79. The outputs of thepostsorter processors are weighted and accumulated by circuits 80, oneof which is provided per pixel, that is sixteen per pseudocell. Theoperation of the postsorter is illustrated in FIG. 19.

Each postsorter processor receives the geometrical attributes of eachfeature identified as impacting the relevant pseudocell, plus the RGBTvalue produced by the colour mixer for the pseudopixel within which thesampling point is positioned. The appropriate pseudopixel data isselected for each sampling point by reference to the position of thesampling point relative to the pseudocell. Completely transparentsamples are discarded so as to avoid cluttering the translucency stacks.

For each psudocell, sixteen RGBT values for the sixteen pseudopixelscovering that pseudocell are input into the postsorter from the colourmixer. Each postsorter processor is arranged to receive four pseudopixelvalues for the quadrant containing the sampling point, one quadrantbeing a quarter of a pseudocell, that is 2×2 pseudopixels. However, eachprocessor is programmed to ignore all but the single RGBT value for thepseudopixel containing that processor's sampling point. Each pseudopixelarea contains either 12 or 13 sampling points, each quadrant areacontaining 50 sampling points, and each abutting pair of pseudopixelscontaining 25 sampling points.

Sampling Point Impact Assessment

For elliptical features, the impact detector does not rely upon the lineequations of the inscribed polygon as to do so would result in the lossof peripheral regions of the feature. Impact assessment is based ratherupon a true analysis of the elliptical (in world space) boundary of thefeature.

Elliptical features include in their attributes major and minor axes U,V which are vectors in world space and intersect at the centre (origin)of the feature. The magnitudes of these vectors are representative ofthe lengths of the major and minor axes a and b. The TE 3 (FIG. 1)transforms the coordinates of the origin and U, V axes to eyepointspace. An inverse perspective transformation (IPT) is then performed todetermine the U, V coordinates of each sampling point.

FIG. 20 illustrates the basic geometry. An elliptical feature 81 isviewed through a viewing plane 82 from eyepoint 83. The plane equationof the feature is known from the received attributes, and thus the (x,y, z) coordinates in eyepoint space of any point P on the feature can becalculated from the equation:

    z=-D/(Ax.sub.s /d.sub.x +By.sub.s /d.sub.y +C)

where A, B, C and D are the elliptical features plane equationcoefficients

d_(x) and d_(y) are functions of the half angle of the display (it isassumed here that the display is square)

x_(s) y_(s) are the screen space coordinates of a line drawn from theeyepoint to the point P, and

The x and y coordinates in eyepoint space can also be readily calculatedfrom:

    x=zx.sub.s /d.sub.x

    y=zy.sub.x /d.sub.y

It should be noted that these same equations are used throughout thesystem where appropriate, e.g. in the presorter for Z-depth featuresorting, and may be performed by a dedicated ASIC.

Having calculated the eyepoint space coordinates (x, y, z) of the pointP, the point P must be transformed into U, V space. Firstly the vectoroffset from the feature origin is calculated:

    x.sub.offset =x-x.sub.p0

    y.sub.offset =y-y.sub.p0

    z.sub.offset =z-z.sub.p0

where (x_(p0), Y_(p0), z_(p0)) defines the feature origin in eyepointspace.

Secondly, the components of this vector offset along the U, V axes ofthe elliptical feature are calculated from the vector dot products ofthe offset vector with each of the axes U and V. This yields:

    u=u.sub.x.x.sub.offset +u.sub.y.y.sub.offset +u.sub.z.z.sub.offset

    v=v.sub.x.x.sub.offset +v.sub.y.y.sub.offset +v.sub.z.z.sub.offset

where (u_(x), u_(y), u_(z)) define the U axis (v_(x), v_(y), v_(z))define the V axis

Substituting in values of x_(offset), y_(offset) gives:

    u=u.sub.x.x+u.sub.y.y+u.sub.z.z-(u.sub.x.x.sub.p0 +u.sub.y.y.sub.p0 +u.sub.z.z.sub.p0)

    v=v.sub.x.x+v.sub.y.y+v.sub.z.z-(v.sub.x.x.sub.p0 +v.sub.y.y.sub.p0 +v.sub.z.z.sub.p0)

or:

    u=(u'.sub.x x.sub.s +u'.sub.y y.sub.s +u'.sub.z)z-u.sub.o

    v=(v'.sub.x x.sub.s +v'.sub.y y.sub.s +v'.sub.z)z-v.sub.o

where

    u'.sub.x =u.sub.x /d.sub.x

    v'.sub.x =v.sub.x /d.sub.x

    u'.sub.y =u.sub.y /d.sub.y

    v'.sub.y =v.sub.y /d.sub.y

    u'.sub.z =u.sub.z

    v'.sub.z =v.sub.z

    (u'.sub.x, u'.sub.y, u'.sub.z)

and

    (v'.sub.x, v'.sub.y, v'.sub.z)

and u_(o) and v_(o) are constants that are fixed for any particularfield and thus can be computed in the TE 4 (FIG. 1).

Thus u and v at any sampling point may be calculated. In practice it ismore efficient to calculate u, v at each pseudocell corner and tocalculate the u, v values at each sampling point by interpolation of thepseudocell corner values.

Having calculated u, v values for each sampling point, it is a simplematter to determine whether a sampling point is impacted. For u, vvalues (u_(sp), v_(sp)) at a sampling point for an elliptical featurehaving major axis dimension a and minor axis dimension b, then if:

    (u.sub.sp /a).sup.2 +(v.sub.sp /b).sup.2 ≦1

impact has occurred.

FIG. 21 illustrates the functional blocks responsible for z calculationand u, v coordinate calculation. The subsystem comprises an inverseperspective transformation device (IPT) 84 which receives fragment datafrom the presorter and a z calculator 85 which receives fragment datafrom the presorter and geometrical attribute data from the attributestore. The z calculator outputs z_(cij), that is the distance to thefeature at points corresponding to the pseudocell corners. The IPTcalculates u, v values at each pseudocell corner to produce outputsu_(cij), v_(cij). These u,v values are used by interpolator 86 toproduce u,v values u_(y),v_(y) at each sampling point using bilinearinterpolation, and knowing the relative position of the sample pointwithin the pseudo-cell. The constants u_(o),v_(o) are introduced viacalculator 87.

Having determined that an elliptical fragment impacts a particularsampling point, the z-depth is calculated at that sample point using theplane equation of the fragment and the absolute position of the samplepoint.

The impacting fragment inverse depth is passed to the translucency stack78 (FIG. 18) with the RGBT values. The stack can store for example eightentries each containing the RGBT and 1/Z for one feature fragment. Whena translucent (at the particular sampling point) feature fragment ispresented to the stack, its 1.Z is compared with all existing entries inthe stack. Assuming no earlier entries, the first translucent feature isstored in position eight in the stack, its position being indicated by a"top of stack" pointer pointing to position eight. The next (second)translucent fragment is depth compared with that in position eight. Thetwo fragments are stored in positions seven and eight, with the nearestfragment in position seven. The stack pointer then points to positionseven. If a fragment is received which, at the sampling point, isopaque, that fragment is correctly positioned in the stack in depthorder and then moved down the stack to position eight (if not already inposition eight). Any entries beneath it in the stack are discarded, andany entries above it are moved down with it so that the depth order ismaintained. The stack pointer keeps track of the nearest (top of thestack) fragment.

Each postsorter processor thus produces a list of fragments in depthorder, with each having an associated RGB and T value. The final colourcontribution of each sampling point is then calculated in theaccumulator 79. Assuming that there are seven translucent fragmentshaving translucencies of T0, T1 . . . T6, and that the seven translucentand one opaque fragments have colours R0G0B0, R1G1B1 . . . R7G7B7, thecumulative translucency in front of the nth translucent fragment is:

    cTn=T.sub.0 ×T.sub.1 x.. ..x T.sub.n-1

Each final colour component (R, G, B) is then calculated as follows:

    R=(cT0×R0)+(cT1×R1)+. . . (cT7×R7)

    G=(cT0×G0)+(cT1×G1)+. . . (cT7×G7)

    B=(cT0×B0)+(cT1×B1)+. . . (cT7×B7)

Thus, each sampling point processor produces a single RGB value and itis from a weighted summation of these values that the final pixel RGBsare formed.

For each pixel of the final image, thirty two sampling points arerelevant, that is the eight sampling points within that pixel, plus thetwenty four sampling points in a half pixel wide boundary around thepixel. Sampling points are allocated different weights as samplingpoints near to the centre of the pixel should have more effect thansampling points close to the edge of the pixel boundary. Each samplingpoint will contribute to four different pixels and will have a differentweighting for each pixel to which it contributes, the weighting being afunction of the distance from the sampling point to the relevant pixelcentre.

Each weighting and accumulator device 80 takes the outputs from thirtytwo postsorter processors, applies the appropriate weightings, sums theresults, and outputs the sum to the respective pixel address in theframe store. All sixteen pixels in the cell are processed concurrentlyby the sixteen weighting and accumulator devices, and then the datarelevant to the next cell of sixteen pixels is released to thepostsorter. The process is then repeated until all the cells of all thesupercells have been processed. The completed frame can then bedownloaded for display.

Thus the described system enables the screen space boundaries of worldspace elliptical features to be precisely determined. The inscribedpolygon enables full coverage of screen space areas by ellipticalfeatures to be determined, and the circumscribed polygon enables screenspace areas not overlapped at all by elliptical features to beidentified. Given the use of circumscribed and inscribed polygon toassess area coverage, a system capable of processing world spacepolygonal features can be readily adapted to process world spaceelliptical features in an efficient manner using the present invention,without it being necessary to break up elliptical features into a seriesof polygons. Such a system capable of processing world space polygonfeatures is described in International Patent Application No.PCT/GB/89/01451.

I claim:
 1. A method for generating data representative of an image of aworld space model to be displayed on a screen, the model being definedby a plurality of features including at least one feature having anelliptical boundary, and the image being intended to present a view ofthe model from a predetermined eyepoint in world space wherein saidmethod comprises the steps of:a. storing attribute data describing saidat least one feature, the attribute data including two axes and anorigin describing the major and minor axes of the elliptical boundary ofsaid feature in world space coordinates, and a magnitude a and brepresenting the length of said major and minor axes; b. transformingsaid attribute data from world space coordinates to eyepoint spacecoordinates; c. determining the positions of a plurality of samplingpoints in screen space; d. determining the position for each saidsampling point of a point of intersection between a line drawn from theeyepoint through the sampling point and a plane defined by said twoaxes; e. calculating the coordinates of each said point of intersectionof the plane in a coordinate system defined by said two axes and saidorigin and calculating said coordinates in eyepoint space; f.identifying each sampling point for which the respective coordinates liewithin the elliptical boundary by calculating a vector offset for eachsaid point of intersection of the plane from the origin, calculatingcomponents u, v of the calculated vector offset along the major andminor axes for each said point of intersection of the plane by using thevector dot products of the offset vector with each of the major andminor axes such that each point of intersection is considered to liewithin the elliptical boundary if (u/a)² +(v/b)² <=1; and g. generatingfor each identified sampling point a sampling point output includingattributes of said at least one feature.
 2. A method according to claim1 further comprising the steps of dividing the screen into a pluralityof sub-areas, storing attribute data describing vertices in world spaceof a polygon circumscribing said at least one feature, transforming thestored vertices into screen space coordinates, and assessing thesub-area impact by said at least one feature by reference to said screenspace coordinates of said vertices.
 3. A method according to claim 2,wherein each sub-area is rectangular and limited by edges, each of whichedges extends parallel to one of a pair of screen space coordinate axes,and comprising the steps of calculating screen space coordinates of abounding box for said at least one feature, the bounding box beingrectangular with each of its edges being parallel to one of the screenspace coordinate system axes, and having each vertex thereof lying on anedge of the bounding box, and identifying said at least one feature aspotentially overlapping any sub-area which overlaps the bounding box. 4.A method according to claim 1 further comprising the steps of dividingthe screen into a plurality of sub-areas, calculating screen spacevertices for an inscribed polygon with each vertex of the polygon lyingon the elliptical boundary of said at least one feature, deriving lineequations which describe the edges of the polygon, determining theposition of each corner of a sub-area relative to each edge of thepolygon, and identifying said at least one feature as fully covering thesub-area if each corner of the sub-area is within an area defined by theedges of said polygon.
 5. A method according to claim 4, comprising thesteps of calculating said vertices of said polygon by determining theworld space coordinates of the four points of intersection between saidmajor and minor axes and the elliptical boundary, and transforming theworld space coordinates to screen space coordinates.
 6. A methodaccording to claim 5 comprising calculating the perpendicular distanceof each corner of a sub-area from each of the edges of the inscribedpolygon and assessing full sub-area coverage by reference to saidcalculated distances.
 7. A method according to claim 4, comprisingcalculating the perpendicular distance of each corner of a sub-area fromeach of the edges of the inscribed polygon and assessing full sub-areacoverage by reference to the calculated distances.
 8. An image generatorfor generating data representative of an image of a world space model tobe displayed on a screen, the model being defined by a plurality offeatures including at least one feature having an elliptical boundary,and the image being intended to present a view of the model from apredetermined eyepoint in world space, wherein the image generatorcomprises:a. means for storing attribute data describing said at leastone feature, the attribute data including two axes and an origin whichdescribe the major and minor axes of the elliptical boundary of saidfeature in world space coordinates, and a magnitude a and b representingthe length of said major and minor axes; b. means for retrieving saidattribute data from said storage means and transforming said attributedata from world space coordinates to eyepoint space coordinates; c.means for determining the positions of a plurality of sampling points inscreen space; d. means for determining the position for each saidsampling point of a point of intersection between a line drawn from theeyepoint through the sampling point and a plane defined by said twoaxes; e. means for calculating the coordinates of each said point ofintersection of said plane in a coordinate system defined by said twoaxes and said origin and calculating said coordinates in eyepoint space;f. means for identifying each sampling point for which the respectivecoordinates lie within the elliptical boundary by calculating a vectoroffset for each said point of intersection of the plane from the origin,calculating components u, v of the calculated vector offset along themajor and minor axes for each said point of intersection of the plane byusing the vector dot products of the offset vector with each of themajor and minor axes such that each point of intersection is consideredto lie within the elliptical boundary if (u/a)² +(v/b)² <=1; and g.means for generating for each identified sampling point a sampling pointoutput including attributes of said at least one feature.